home *** CD-ROM | disk | FTP | other *** search
- MODULE BRAIN;
- (* Version*: 20.12.89 04:35*)
-
- FROM EasyDialog IMPORT and;
- FROM MenuEvnt IMPORT MINDMENU,MenueEreignis;
- FROM Liste IMPORT KillList;
- FROM MBIO IMPORT MBList;
- FROM SYSTEM IMPORT ADR,ADDRESS,VAL,SHIFT;
- FROM KbdEvnt IMPORT MenuSearch;
-
- FROM AES IMPORT ApplInitialise,ApplExit,ResourceLoad,ResourceGetAddr,MenuBar,
- GrafMouse,EventMultiple,ResourceFree,GrafHandle,FormDialogue;
-
- FROM GEMAESbase IMPORT Arrow,HourGlass,FormStart,FormFinish,
- MesageEvent,TimerEvent,KeyboardEvent;
- FROM GEMVDIBase IMPORT VDIWorkInType,VDIWorkOutType;
- FROM VDIControls IMPORT OpenVirtualWorkstation,CloseVirtualWorkstation;
-
-
-
- VAR ENDE : BOOLEAN;
- menueadresse,MouseAdresse : ADDRESS;
- id,handle,j,MaxX,MaxY : INTEGER;
- RSCfileName : ARRAY[1..12] OF CHAR;
- OK : BOOLEAN;
- taste : CHAR;
- WorkIn : VDIWorkInType;
- WorkOut : VDIWorkOutType;
- WC,HC,WB,HB : INTEGER;
-
-
- PROCEDURE Auswahl;
-
- VAR
- mBuf :ARRAY [0..7] OF INTEGER;
- formret,msgret : INTEGER;
- events,flag,mx,my,mbutton,mstate,scancode,mclicks:INTEGER;
- String : ARRAY [1..120] OF CHAR;
- BEGIN
- flag :=MesageEvent+TimerEvent+KeyboardEvent;
- REPEAT
- ENDE := FALSE;
-
- events:=EventMultiple(flag,0,0,0,0,0,0,0,0,0,0,0,0,0,
- ADR(mBuf),10000,0,(* Timer Event*)
- mx,my,
- mbutton,mstate,scancode,mclicks);
- IF and(events,MesageEvent)THEN
- msgret :=mBuf[4];
- ENDE := MenueEreignis(msgret,menueadresse);
- END(*IF*);
- IF and(events,TimerEvent) THEN
- (**********************************************************************************************************)
- (*String :='[0][ TimerEvent | Nur zum Test!!!!! | Christian Ledermann| ver 0.0 vom 25.02.93 ][ OK ]';*)
- (*formret:=FormAlert(1,String); *)
- (**********************************************************************************************************)
- END(*IF*);
- IF and(events,KeyboardEvent) THEN
- IF ~MenuSearch(id,menueadresse,mstate,scancode,taste) THEN
- (* Eigene Tastaturabfrage*)
- IF taste=33C THEN (* ESC-Taste gedrückt!*)
- (* Sehr praktisch wenn man mit dem Debugger arbeitet *)
- (* Im Normalfall erscheint wenn man den Debugger verlässt *)
- (* das Menü des M2Loaders. Nach einem Druck auf die ESC-Taste *)
- (* ist nun das eigene Menü wieder da, ausserdem wird ein *)
- (* Redraw für den ganzen Bildschirm erzwungen *)
-
- (* Menü auschalten *)
- MenuBar(menueadresse,0);
- (* Hier wird ein Komplett Redraw erzwungen ! *)
- FormDialogue(FormStart,0,0,0,0,0,0,MaxX,MaxY);
- FormDialogue(FormFinish,0,0,0,0,0,0,MaxX,MaxY);
- (* Menü wieder einschalten *)
- MenuBar(menueadresse,1);
-
- END(*IF*);
- END(*IF*);
-
- END(*IF*);
-
-
- UNTIL ENDE
-
-
- END Auswahl;
-
- BEGIN
- id := ApplInitialise();
- RSCfileName :='BRAIN.rsc';
- ResourceLoad(RSCfileName);
- ResourceGetAddr(0,MINDMENU,menueadresse);
- handle:=GrafHandle(WC,HC,WB,HB);
- FOR j:= 0 TO 9 DO WorkIn[j]:=0 END(*FOR*);
- WorkIn[10]:=2;
- OpenVirtualWorkstation(WorkIn,handle,WorkOut);
- MaxX:=WorkOut[0];
- MaxY:=WorkOut[1];
-
- MenuBar(menueadresse,1);
- GrafMouse(Arrow,NIL);
- Auswahl;
- KillList(MBList);
- CloseVirtualWorkstation(handle);
- ResourceFree;
- ApplExit;
- END BRAIN.
-